home *** CD-ROM | disk | FTP | other *** search
/ Champak 130 / Vol 130.iso / games / target_s.swf / scripts / skateEngine.as < prev    next >
Encoding:
Text File  |  2008-11-13  |  13.5 KB  |  519 lines

  1. package
  2. {
  3.    import assets.screens.*;
  4.    import flash.display.*;
  5.    import flash.events.*;
  6.    import flash.geom.Point;
  7.    import flash.net.*;
  8.    import flash.system.Security;
  9.    
  10.    public class skateEngine extends MovieClip
  11.    {
  12.        
  13.       
  14.       public var pp:Point;
  15.       
  16.       public var accl:Number = 1;
  17.       
  18.       public var course:Number = 1;
  19.       
  20.       private var keyLT:Boolean = false;
  21.       
  22.       public var topspd:Number = 20;
  23.       
  24.       public var c1lock:Boolean = false;
  25.       
  26.       public var scope:Object;
  27.       
  28.       public var gravity:Number = 1;
  29.       
  30.       public var screen:Sprite;
  31.       
  32.       public var swHighScoreObject:*;
  33.       
  34.       public var scene:Object;
  35.       
  36.       public var stats:*;
  37.       
  38.       public var decl:Number = 0.5;
  39.       
  40.       public var vx:Number = 0;
  41.       
  42.       public var vy:Number = 0;
  43.       
  44.       public var indyInit:Boolean = false;
  45.       
  46.       public var c4lock:Boolean = true;
  47.       
  48.       private var keyRT:Boolean = false;
  49.       
  50.       public var player:Object;
  51.       
  52.       public var hub:Loader;
  53.       
  54.       public var friction:Number = 0.1;
  55.       
  56.       private var keySH:Boolean = false;
  57.       
  58.       private var keySP:Boolean = false;
  59.       
  60.       public var medic1:MovieClip;
  61.       
  62.       public var sound:Object;
  63.       
  64.       private var keyDN:Boolean = false;
  65.       
  66.       private var keyUP:Boolean = false;
  67.       
  68.       public var ollieInit:Boolean = false;
  69.       
  70.       public var c3lock:Boolean = true;
  71.       
  72.       public var methodInit:Boolean = false;
  73.       
  74.       public var HSLOAD_ID:Number = 0;
  75.       
  76.       public var key1:Boolean = false;
  77.       
  78.       public var key2:Boolean = false;
  79.       
  80.       public var key3:Boolean = false;
  81.       
  82.       public var key4:Boolean = false;
  83.       
  84.       public var key5:Boolean = false;
  85.       
  86.       public var c2lock:Boolean = true;
  87.       
  88.       public function skateEngine()
  89.       {
  90.          key1 = false;
  91.          key2 = false;
  92.          key3 = false;
  93.          key4 = false;
  94.          key5 = false;
  95.          keyUP = false;
  96.          keyLT = false;
  97.          keyDN = false;
  98.          keyRT = false;
  99.          keySP = false;
  100.          keySH = false;
  101.          pp = new Point(350,200);
  102.          course = 1;
  103.          c1lock = false;
  104.          c2lock = true;
  105.          c3lock = true;
  106.          c4lock = true;
  107.          vx = 0;
  108.          vy = 0;
  109.          gravity = 1;
  110.          friction = 0.1;
  111.          accl = 1;
  112.          decl = 0.5;
  113.          topspd = 20;
  114.          screen = new Sprite();
  115.          stats = new screen_stats(this);
  116.          ollieInit = false;
  117.          methodInit = false;
  118.          indyInit = false;
  119.          hub = new Loader();
  120.          swHighScoreObject = new Object();
  121.          HSLOAD_ID = 0;
  122.          super();
  123.          scope = this;
  124.          scene = new sceneEngine(scope);
  125.          sound = new soundEngine(scope);
  126.          player = new playerEngine(scope);
  127.          player.setPlayer();
  128.          sound.startSound("bg",0,9999,0.5,0);
  129.          stats.resetStats();
  130.          setScreen(0);
  131.       }
  132.       
  133.       private function loadHub() : *
  134.       {
  135.          var _loc1_:* = undefined;
  136.          var _loc2_:URLRequest = null;
  137.          Security.allowDomain("shockwave.com","intranet.shockwave.com","gameblast.shockwave.com","www.shockwave.com","dev.shockwave.com","stage.shockwave.com");
  138.          swHighScoreObject = {
  139.             "showTab":"submit",
  140.             "gameId":null,
  141.             "gameTitle":null,
  142.             "screenWidth":700,
  143.             "screenHeight":400,
  144.             "scoreDescriptor":"points",
  145.             "numPlayers":1,
  146.             "player1Score":0
  147.          };
  148.          swHighScoreObject.gameId = "streetskater";
  149.          swHighScoreObject.gameTitle = "StreetSkater";
  150.          swHighScoreObject.player1Score = stats.score;
  151.          _loc1_ = "http://www.shockwave.com/content/highscores/scorez-2002.swf";
  152.          _loc2_ = new URLRequest(_loc1_);
  153.          hub.load(_loc2_);
  154.          addChild(hub);
  155.       }
  156.       
  157.       public function foreSwap() : *
  158.       {
  159.          swapChildren(player.skater,scene.foreground);
  160.       }
  161.       
  162.       public function gameReset() : *
  163.       {
  164.          var _loc1_:DisplayObject = null;
  165.          var _loc2_:uint = 0;
  166.          stats.resetStats();
  167.          scene.resetScene();
  168.          _loc2_ = 0;
  169.          while(_loc2_ < this.numChildren)
  170.          {
  171.             _loc1_ = this.getChildAt(_loc2_);
  172.             if(this.getChildAt(_loc2_) is DisplayObjectContainer)
  173.             {
  174.                this.removeChild(_loc1_);
  175.             }
  176.             _loc2_++;
  177.          }
  178.          setScreen(0);
  179.       }
  180.       
  181.       public function playAgain() : *
  182.       {
  183.          hub.unload();
  184.          removeChild(hub);
  185.          trace("done");
  186.       }
  187.       
  188.       private function keyRelease(param1:KeyboardEvent) : void
  189.       {
  190.          switch(param1.keyCode)
  191.          {
  192.             case 65:
  193.                key1 = false;
  194.                break;
  195.             case 83:
  196.                key2 = false;
  197.                break;
  198.             case 68:
  199.                key3 = false;
  200.                break;
  201.             case 70:
  202.                key4 = false;
  203.                break;
  204.             case 71:
  205.                key5 = false;
  206.                break;
  207.             case 38:
  208.                keyUP = false;
  209.                break;
  210.             case 37:
  211.                keyLT = false;
  212.                break;
  213.             case 39:
  214.                keyRT = false;
  215.                break;
  216.             case 40:
  217.                keyDN = false;
  218.                break;
  219.             case 32:
  220.                keySP = false;
  221.                break;
  222.             case 16:
  223.                keySH = false;
  224.          }
  225.       }
  226.       
  227.       public function gameContinue() : *
  228.       {
  229.          var _loc1_:DisplayObject = null;
  230.          var _loc2_:uint = 0;
  231.          scene.resetScene();
  232.          if(scope["c" + (course + 1) + "lock"])
  233.          {
  234.             scope["c" + (course + 1) + "lock"] = false;
  235.          }
  236.          trace(course + ":" + scope["c" + (course + 1) + "lock"]);
  237.          _loc2_ = 0;
  238.          while(_loc2_ < this.numChildren)
  239.          {
  240.             _loc1_ = this.getChildAt(_loc2_);
  241.             if(this.getChildAt(_loc2_) is DisplayObjectContainer)
  242.             {
  243.                this.removeChild(_loc1_);
  244.             }
  245.             _loc2_++;
  246.          }
  247.          setScreen(2);
  248.       }
  249.       
  250.       public function levelComplete() : *
  251.       {
  252.          control(false);
  253.          sound.stopSound("roll");
  254.          stats.courseCompleteMenu(true);
  255.       }
  256.       
  257.       private function activate(param1:Event) : *
  258.       {
  259.          if(stats.action)
  260.          {
  261.             if(player.action)
  262.             {
  263.                process_keys();
  264.             }
  265.             scene.process();
  266.             player.process();
  267.             stats.process();
  268.          }
  269.       }
  270.       
  271.       private function mouseControl(param1:Event) : *
  272.       {
  273.          stage.focus = this;
  274.       }
  275.       
  276.       public function setCourse() : *
  277.       {
  278.          removeChild(screen);
  279.          scene.setScene();
  280.          addChild(player.shad);
  281.          addChild(player.skater);
  282.          addChild(player.skaterFX);
  283.          player.setPlayer();
  284.          player.resetCharacter();
  285.          ollieInit = false;
  286.          methodInit = false;
  287.          indyInit = false;
  288.          addChild(scene.foreground);
  289.          addChild(stats);
  290.          control(true);
  291.       }
  292.       
  293.       public function gameComplete() : *
  294.       {
  295.          control(false);
  296.          sound.stopSound("roll");
  297.          stats.clearTrickFX(true);
  298.          player.tscore = stats.score;
  299.          stats.initTrickFX("gameover");
  300.          medic1 = new ambulance();
  301.          medic1.x = 280;
  302.          medic1.y = 410;
  303.          addChildAt(medic1,numChildren - 2);
  304.       }
  305.       
  306.       public function submitScore() : *
  307.       {
  308.          trace("submit click");
  309.       }
  310.       
  311.       public function control(param1:*) : *
  312.       {
  313.          switch(param1)
  314.          {
  315.             case true:
  316.                stage.focus = this;
  317.                addEventListener(Event.ENTER_FRAME,activate);
  318.                addEventListener(KeyboardEvent.KEY_DOWN,keyCapture);
  319.                addEventListener(KeyboardEvent.KEY_UP,keyRelease);
  320.                addEventListener(MouseEvent.CLICK,mouseControl);
  321.                break;
  322.             case false:
  323.                removeEventListener(Event.ENTER_FRAME,activate);
  324.                removeEventListener(KeyboardEvent.KEY_DOWN,keyCapture);
  325.                removeEventListener(KeyboardEvent.KEY_UP,keyRelease);
  326.                removeEventListener(MouseEvent.CLICK,mouseControl);
  327.          }
  328.       }
  329.       
  330.       public function setScreen(param1:*) : *
  331.       {
  332.          if(screen.numChildren > 0)
  333.          {
  334.             screen.removeChildAt(0);
  335.          }
  336.          switch(param1)
  337.          {
  338.             case 0:
  339.                screen.addChild(new screen_splash(this));
  340.                break;
  341.             case 1:
  342.                screen.addChild(new screen_learn(this));
  343.                break;
  344.             case 2:
  345.                screen.addChild(new screen_select(this));
  346.                break;
  347.             case 3:
  348.                addChild(stats);
  349.                setCourse();
  350.          }
  351.          addChild(screen);
  352.       }
  353.       
  354.       private function process_keys() : *
  355.       {
  356.          if(keyRT && player.smode == 0)
  357.          {
  358.             if(vx + accl < topspd)
  359.             {
  360.                vx += accl;
  361.             }
  362.             else
  363.             {
  364.                vx = topspd;
  365.             }
  366.             if(!player.pump)
  367.             {
  368.                stats.updateStamina(-10);
  369.                player.skater.gotoAndPlay("pump");
  370.                player.pump = true;
  371.             }
  372.          }
  373.          else if(player.smode == 3)
  374.          {
  375.             if(vx - friction / 2 > 0)
  376.             {
  377.                vx -= friction / 2;
  378.             }
  379.             else
  380.             {
  381.                vx = 0;
  382.             }
  383.          }
  384.          else if(vx - friction > 0)
  385.          {
  386.             vx -= friction;
  387.          }
  388.          else
  389.          {
  390.             vx = 0;
  391.          }
  392.          if(keyLT && player.smode == 0)
  393.          {
  394.             if(vx - decl > 0)
  395.             {
  396.                vx -= decl;
  397.             }
  398.             else
  399.             {
  400.                vx = 0;
  401.             }
  402.          }
  403.          if(keyUP && vx > 0 && player.smode == 0)
  404.          {
  405.             if(player.skater.y > 335)
  406.             {
  407.                --player.skater.y;
  408.                player.skater.rotation = -3;
  409.             }
  410.             else
  411.             {
  412.                player.skater.y = 335;
  413.                player.skater.rotation = 0;
  414.             }
  415.          }
  416.          if(keyDN && vx > 0 && player.smode == 0)
  417.          {
  418.             if(player.skater.y < 365)
  419.             {
  420.                ++player.skater.y;
  421.                player.skater.rotation = 8;
  422.             }
  423.             else
  424.             {
  425.                player.skater.y = 365;
  426.                player.skater.rotation = 0;
  427.             }
  428.          }
  429.          if(!keyUP && !keyDN)
  430.          {
  431.             player.skater.rotation = 0;
  432.          }
  433.          if(keySP && player.contact && stats.stamina > 0.25 && !ollieInit)
  434.          {
  435.             ollieInit = true;
  436.             stats.updateStamina(-15);
  437.             player.skater.gotoAndPlay("ollie");
  438.             stats.clearTrickFX(true);
  439.          }
  440.          if(key3 && player.contact && stats.stamina > 0.25)
  441.          {
  442.             sound.startSound("ollie",0,0,0.25,0);
  443.             sound.setVolume("roll",0);
  444.             player.skater.gotoAndPlay("kickflip");
  445.             player.contact = false;
  446.             player.smode = 4;
  447.             vy = 7;
  448.             if(player.skater.y < player.base)
  449.             {
  450.                player.tscore = 100;
  451.             }
  452.             else
  453.             {
  454.                player.tscore = 50;
  455.             }
  456.             stats.initTrickFX("kickflip");
  457.          }
  458.          if(key4 && !player.contact && stats.stamina > 0.25 && !indyInit)
  459.          {
  460.             indyInit = true;
  461.             player.skater.gotoAndPlay("indy360");
  462.             sound.setVolume("roll",0);
  463.             player.airTime = true;
  464.             player.smode = 5;
  465.             player.tscore = 1000;
  466.             stats.initTrickFX("indy360");
  467.          }
  468.          if(key5 && !player.contact && stats.stamina > 0.25 && !methodInit)
  469.          {
  470.             methodInit = true;
  471.             player.skater.gotoAndPlay("methodAir");
  472.             player.airTime = true;
  473.             player.smode = 6;
  474.             player.tscore = 250;
  475.             stats.initTrickFX("methodAir");
  476.          }
  477.       }
  478.       
  479.       private function keyCapture(param1:KeyboardEvent) : void
  480.       {
  481.          switch(param1.keyCode)
  482.          {
  483.             case 65:
  484.                key1 = true;
  485.                break;
  486.             case 83:
  487.                key2 = true;
  488.                break;
  489.             case 68:
  490.                key3 = true;
  491.                break;
  492.             case 70:
  493.                key4 = true;
  494.                break;
  495.             case 71:
  496.                key5 = true;
  497.                break;
  498.             case 38:
  499.                keyUP = true;
  500.                break;
  501.             case 37:
  502.                keyLT = true;
  503.                break;
  504.             case 39:
  505.                keyRT = true;
  506.                break;
  507.             case 40:
  508.                keyDN = true;
  509.                break;
  510.             case 32:
  511.                keySP = true;
  512.                break;
  513.             case 16:
  514.                keySH = true;
  515.          }
  516.       }
  517.    }
  518. }
  519.